package com.yanmaohu.yulia.statement;

import com.yanmaohu.yulia.bean.*;

/**
 * @author Bright Lee
 */
public final class DeclareCursorStatement implements Statement {

    private int beginIndex;
    private int endIndex;
    private LocalQualifiedName cursorName;
    private CursorSensitivity cursorSensitivity;
    private CursorScrollability cursorScrollability;
    private CursorHoldability cursorHoldability;
    private CursorReturnability cursorReturnability;
    private CursorSpecification cursorSpecification;
    private Identifier statementName;

    public DeclareCursorStatement(int beginIndex,
                                  int endIndex,
                                  LocalQualifiedName cursorName,
                                  CursorSensitivity cursorSensitivity,
                                  CursorScrollability cursorScrollability,
                                  CursorHoldability cursorHoldability,
                                  CursorReturnability cursorReturnability,
                                  CursorSpecification cursorSpecification,
                                  Identifier statementName) {
        this.beginIndex = beginIndex;
        this.endIndex = endIndex;
        this.cursorName = cursorName;
        this.cursorSensitivity = cursorSensitivity;
        this.cursorScrollability = cursorScrollability;
        this.cursorHoldability = cursorHoldability;
        this.cursorReturnability = cursorReturnability;
        this.cursorSpecification = cursorSpecification;
        this.statementName = statementName;
    }

    @Override
    public int getBeginIndex() {
        return beginIndex;
    }

    @Override
    public int getEndIndex() {
        return endIndex;
    }

    public LocalQualifiedName getCursorName() {
        return cursorName;
    }

    public CursorSensitivity getCursorSensitivity() {
        return cursorSensitivity;
    }

    public CursorScrollability getCursorScrollability() {
        return cursorScrollability;
    }

    public CursorHoldability getCursorHoldability() {
        return cursorHoldability;
    }

    public CursorReturnability getCursorReturnability() {
        return cursorReturnability;
    }

    public CursorSpecification getCursorSpecification() {
        return cursorSpecification;
    }

    public Identifier getStatementName() {
        return statementName;
    }

}
